package com.mmg.cosplay.utils;

import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

public class TimestampUtils {

    // 线程安全的格式化器 (static final 保证单例)
    private static final DateTimeFormatter FORMATTER =
            DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")
                    .withZone(ZoneId.systemDefault()); // 使用系统默认时区

    /**
     * 将毫秒时间戳转为指定格式字符串 (线程安全)
     * @param millis 毫秒时间戳 (13位数字)
     * @return 格式化后的日期字符串
     */
    public static String format(long millis) {
        return FORMATTER.format(Instant.ofEpochMilli(millis));
    }

    // 测试用例
    public static void main(String[] args) {
        long timestamp = 1727134200000L; // 2025-09-24 11:30 UTC+8

        // 多线程安全调用验证
        Runnable task = () -> {
            String result = format(timestamp);
            System.out.println(Thread.currentThread().getName() + ": " + result);
        };

        // 启动10个线程并发测试
        for (int i = 0; i < 10; i++) {
            new Thread(task, "Thread-" + i).start();
        }
    }
}